Printerface II 2026 Remake
Vor ein paar Monaten habe ich mir einen aktuellen Nadeldrucker gekauft, da ich einfach Bock hatte mal wieder ein wenig mit einem Drucker rumzuspielen. Ich habe zwar einige Atari-Drucker in der Vitrine stehen (1025, 1027, 1029) aber keinen Epson-Kompatiblen. Also viel die Wahl auf den Epson LX-350. Ein günstiger 9-Nadler der ESC/P kompatibel ist und somit auch mit dem FX-80. Der LX-350 verfügt auch noch über einen klassischen Centronics-Anschluss (neben USB und Seriellem-Interface) - somit die besten Voraussetzungen für den Anschluss an den Atari.
Vor einigen Jahren habe ich mir im ABBUC-Shop ein Supra Microprint Interface gekauft. Mit diesem funktioniert der LX-350 prinzipiell auch wunderbar. Mit einer Einschränkung, die fast alle historischen Atari-Drucker Interfaces haben: Sie wandeln stur das Atari spezifische EOL ($9B) in das Druckertypische CR ($0D) um. Manche auch in CR+LF und andere sogar nur in ein LF ($0A). Nun ist aber nicht jedes Datenbyte mit dem Wert $9B das an den Drucker geschickt wird ein EOL. Dies ist der Fall, wenn dieses Datenbyte $9B Bestandteil einer Bytefolge ist, nachdem der Drucker durch einen entsprechenden ESC-Befehl in einem Grafikmodus gesetzt wurde. Wird dieses Zeichen jetzt stur durch das Interface in ein CR ($0D) umgewandelt entsteht ein Fehldruck. Das sieht dann z.B. so aus:

Eigentlich sollte es aber so aussehen:

Auf der Suche nach einem "intelligenten" Interface bin ich im ABBUC-Bauplanservice fündig geworden. Dort schlummert tatsächlich eine Bauanleitung für ein Druckerinterface, das exakt dieses angesprochene Problem löst: Das "Printerface II" aus dem Jahr 1987 von Jens Jedamzik. Ich hätte gerne die PDF hier angehängt, da der Bauplanservice immer noch offline ist, aber die Upload Begrenzung von 500k lässt dies leider nicht zu.
Die Dokumentation ist sehr ausführlich und enthält neben einer allgemeinen Funktionsbeschreibung auch Schaltplan, Bauteileliste, Layout einer einlagigen Platine und das assemblierte Listing der Firmware. Allerdings konnte ich weder BIN-Files für das EPROM noch Gerber-Files für die Platine finden. Da ich weder Lust noch die Ausrüstung habe um aus einem gedruckten Platinen Layout auf Papier eine Platine zu ätzen, musste ich eben selber ran und die Platine neu entwerfen. Eine gute Gelegenheit um noch einige Verbesserungen an dem Interface umzusetzen.
Im ersten Schritt musste ich zunächst von Hand den Maschinencode aus dem Assemblerlisting in ein EPROM übertragen. Die Firmware ist aber nicht einmal 1K groß, also ein Klax für jemanden der damals das komplette Turbo-Basic aus der Happy-Computer abgetippt hat.
Bevor ich aber nun noch mehr Zeit und Geld investieren sollte, musste ich überprüfen ob die Bauanleitung überhaupt funktioniert. Im ABBUC-Forum und auch sonst im Netz habe ich bisher zu dieser Bauanleitung keinerlei Hinweise gefunden. Es kann also gut sein, dass ich der erste war, der dieses Interface nach fast 40 Jahren das erste mal zum Leben erweckte. Zum Glück sind alle Bauteile noch aufzutreiben. Lediglich der Microcontroller 8039 von Intel musste ich etwas suchen. Bin dann auf EBAY aber fündig geworden und konnte dort für wenige Euros mehrere kompatible Modell einkaufen. Tatsächlich als ungenutzte Neuware. Also zunächst einmal das Interface auf dem Steckbrett nachgebaut:

Und tatsächlich: Das Printerface funktioniert und auch die Grafikmodus Erkennung funktioniert wie gewünscht. Also genug Motivation um eine Platine zu entwerfen und fertigen zu lassen.
Da gab es aber noch ein klitzekleines Problem: Ich habe noch nie eine Platine entworfen und habe auch noch nie mit KiCad oder einem anderen Platinen-Layoutprogramm gearbeitet. Also endlich genau die Motivation um das nachzuholen.
Also ran ans Werk, KiCad installiert und ein paar Tutorial-Videos reingezogen. Ein paar gute Tipps noch bei dem Hardware-Freak meines Vertrauens abgeholt (Danke nochmal Wolfram) und los ging es. Ich war verblüfft wie schnell ich mit KiCad voran kam und nach wenigen Tagen hatte ich meinen ersten Entwurf fertig der dann bereits nach 10 Tagen von JLCPCB geliefert wurde. Und tatsächlich hat die Platine auf Anhieb funktioniert. Zwar noch ohne die von mir geplanten Veränderungen und auch noch ohne Ausgangstreiber, aber ich hatte die Bestätigung, dass ich auf dem richtigen Weg bin.
... ich kürze jetzt mal etwas ab und überspringe (vorläufig) die nächste 3 Monate und bin stolz wie Bolle, dass ich heute die finale Version meiner "Printerface II 2026" in Betrieb nehmen konnte. Dazu musste ich mich nicht nur in KiCad einarbeiten sondern mich auch noch in die Programmierung der INTEL MCS-48 Prozessorfamilie einarbeiten, den kompletten Quellcode der Originalfimware analysieren und verstehen und dann auch noch verstehen wie der Druckvorgang beim Atari funktioniert ... Angefangen bei der Software über die Schichten im OS (IOCB - P-Handler - SIO - POKEY/PIA) und natürlich das SIO Protokoll selbst verstehen.
Hier ein paar Bilder meiner Remakes. Ich habe final drei Modelle. Zwei Standmodell in Standardgehäusen von Hammond (gibt es bei Reichelt) und ein sehr kompaktes Modell, das in ein Modulgehäuse des C64 passt. Dafür hatte ich ein 3D-Druck Datei gefunden. Die Standmodelle haben eine D-Sub 25pol Buchse an die der Drucker über ein normales PC-Druckerkabel angeschlossen werden kann. Das eine Modell hat für den Anschluss an den Atari eine SIO-Buchse verbaut, das andere Standmodell wird mit einem fest verbundenen SIO-Kabel verbunden. Das Kleine Modul-Modell hat ebenfalls ein fest verlötetes SIO-Kabel und zum Drucker eine ebenfalls fest verlötetes Flachbandkabel mit Centronics-Stecker.

... Fortsetzung folgt (Uploadvolumen erschöpft)






